LCD 2 x 16 A 2 x 20
ZNAKŮ NA I2C S PCF8574
Vágner Vlastimil
Přípravek
umožňuje ovládat a hlavně jednoduše odzkoušet znakové LCD displeje s řadičem
HD44780 nebo jeho ekvivalenty, pro komunikaci jsem zvolil sběrnici I2C, z důvodu
jednoduchého programového ovládání po této sběrnici. Přípravek se připojuje na
sériový port počítače PC nebo pomocí redukce USB/COM. Tato musí podporovat všechny
I/O klasického sériového portu PC. Počítač je připojen k redukci COM - I2C,
přípravek si neklade za cíl konkurovat továrním zapojením může posloužit pro
vlastní inspiraci při podobných pokusech.
POPIS PŘÍPRAVKU
Přípravek
je napájen napětím 5VDC na ovládání LCD displejů 2 x 16 a 2 x 20 znaků je
využito integrovaného obvodu PCF8574 jehož I/O linky jsou rozděleny na datové
bity a řídící bity. Bity D0 – D3 jsou využity na vysílání jak instrukcí, tak i
dat, bity D4 – D7 jsou využity na ovládání řídících signálů pro LCD. Bit D4
ovládá signál EN, bit D5 ovládá signál R/W(trvale je na logické nule), bit D6
ovládá signál RS (REGISTER SELECT) a bit D7 ovládá led podsvícení LCD displeje.
Na obrázku č. 02 je schéma zapojení přípravku připojeného k LCD displeji. Převodník
COM – I2C je použit v odzkoušeném zapojení pro komunikaci na sběrnici I2C
s moduly uveřejněnými zde na webu jeho zapojení je na obrázku č. 01. Vývody
LCD displeje bity D0 – D3 jsou na přípravku spojeny se zemí GND, bity D4 – D7
LCD jsou propojeny s bity D0 – D3 obvodu PCF8574, převodník,
přípravek i znakový LCD displej je napájen stabilizátorem 7805.
STRUČNÝ POPIS
KOMUNIKACE
Počítač
komunikuje s PCF8574 po sběrnici I2C a PCF8574 s LCD displejem komunikuje
po 4-bitové sběrnici. Po zapnutí napájení je LCD displej vnitřně resetován a
automaticky je inicializován při této inicializaci je provedeno : jako první krok je smazán displej, v druhém
kroku je provedeno nastavení funkce kdy je nastavena 8-bitová komunikace, nastaven jeden řádek,
velikost znaku 5 x 8 bodů, v třetím kroku je provedena kontrola displeje
kdy je displej, kursor blikání vypnuto, ve čtvrtém kroku je provedeno nastavení
modu kdy I/D je nastaveno na přičítání (zvětšení adresy DDRAM) a S je
vypnuto jde o posun displeje. Nastavení a popis instrukcí včetně inicializace
LCD je podrobně popsáno v datasheetu k IO HD44780. Po zapnutí a vnitřním
resetu LCD je třeba nastavit s LCD čtyřbitovou komunikaci, počet řádků (2),
smazat displej (nastaví kurzor na pozici 1řádek, 1pozice znaku), I/D na
přičítání, zapnout displej, kursor a blikání kursoru. Komunikace ve 4-bitovém
modu probíhá tak že je potřeba vysílanou instrukci tak i data vysílat
nadvakrát, jako první se vyšlou vyšší 4bity a potvrdí se signálem ENABLE. Poté
se vyšlou nižší 4bity a opět se potvrdí signálem ENABLE. V případě že se
vysílají data musí být tyto potvrzeny
také signálem ENABLE a také signálem RS, tento signál rozlišuje, zda se
vysílají data nebo instrukce. V tomto zapojení probíhá komunikace tak že po
připojení napájecího napětí se provede automaticky reset LCD tak jak je psáno
výše, po spuštění programu LCD.EXE je proveden reset IO obvodu PCF8574 po tomto
resetu automaticky proběhne inicializace LCD displeje a je možné provádět zápis
znaků nebo číslic. Při inicializaci LCD je v proceduře pro inicializaci
adresován jako první obvod PCF8574 adresou (64), poté je zapnut signál ENABLE
hodnota (16) hodnota (16) odpovídá bitu D4, následuje časová prodleva 3µS a jsou
vyslány první vyšší 4bity ke kterým se
přičte hodnota signálu ENABLE(16). Následuje časová prodleva 3µS a vypnutí signálu
ENABLE, dále je opět zapnut signál ENABLE následuje časová prodleva 3µS a vyslání
spodních 4bitů ke kterým je přičten signál ENABLE hodnota (16). Opět následuje
časová prodleva 3µS a vypnutí signálu ENABLE. Procedura pro vysílání dat je
shodná s procedurou pro vysílání instrukcí pouze se k hodnotě signálu
ENABLE hodnota (16) ještě přičte hodnota signálu RS hodnota
(64) což je hodnota bitu D6. Bit D7 ovládá bázi tranzistoru T1 a je trvale
v logické nule tím je tranzistor T1 po inicializaci PCF8574 trvale sepnutý
stejně tak i bit D5 který ovládá signál R/W je také trvale v logické nule.
Při inicializaci LCD je použito
instrukcí první je nastavení 4-bitového modu, nastavení dvou řádků současně se zvolí i
znak o velikosti 5 x 8 bodů, smazání displeje, nastavení posunu displeje
doprava, I/D = 1 zvětšení adresy DDRAM, zapnutí displeje, zapnutí kursoru,
zapnutí blikání kursoru, konec inicializace.
POPIS PROGRAMŮ
Program
pro ovládání LCD displeje má název LCD.EXE je odladěn v TP7 jde spustit
pod OS DOS, WINDOWS 95/98, WINDOWS 2000, WINDOWS XP, WINDOWS 7 STARTÉR. Pod OS
WINDOWS 2000 až WINDOWS 7 STARTÉR jde program spustit pouze z příkazové
řádky pokud jsou uvedené OS nainstalovány
ve 32-bitové verzi. Po spuštění programu je, jako první volba sériového portu
kde je připojen převodník I2C volbu volíme stiskem klávesy s číslicemi 1 –
4, stiskem klávesy s číslicí 1volíme sériový port COM1, stiskem klávesy
s číslicí 2 volíme sériový port COM2, atd. Po volbě portu
s připojeným přípravkem se na monitoru zobrazí volba LCD displeje 2 x
<S>ESTNÁCT , 2 x <D>VACET
ZNAKU. Stiskem klávesy s písmenem „S“ volíme LCD displej s šestnácti
znaky na řádce, stiskem klávesy s písmenem „D“ volíme LCD displej
s dvaceti znaky na řádce. Po volbě LCD displeje se na monitoru zobrazí
PROVEDEN RESET PCF POKRAČUJ STISKEM KLÁVESY ŠIPKA VLEVO, po stisku uvedené
klávesy se na monitoru již zobrazí nabídka pro psaní znaků nebo číslic na LCD.
Po zadaní znaků jejich počet je určen, zda jde o LCD s 2x16 nebo 2x20
znaků stiskneme klávesu ENTER a zapsané znaky na monitoru PC se přenesou na LCD
displej. Nové zadání znaků provedeme po
stisku klávesy MEZERNÍK poté zadáme nové znaky a opět stiskneme klávesu ENTER.
Program ukončíme stiskem klávesy ESC po zadání znaku (ů). Program po ukončení
smaže monitor počítače a současně i LCD displej. Pokud je program spuštěn na počítači
s redukcí USB/COM je zápis na LCD displej pomalejší než při spuštění na počítači
který má přímo sériový port COM.
Program PREVOD.EXE po spuštění programu se na monitoru počítače zobrazí
zadej hodnotu po jejím zadání stiskneme ENTER, zobrazí se další položka zadej
hodnotu za E sem zadáváme hodnotu bitu kde je připojený signál ENABLE po jejím
zadání stiskneme klávesu ENTER. Zobrazí se další položka zadej hodnotu za RS
sem zadáváme hodnotu bitu kde je připojený signál RS, po jejím zadání stiskneme
klávesu ENTER, nyní se na monitoru zobrazí binární hodnota všech zadaných hodnot.
Dále se zobrazí vyšší hodnota jde o vyšší 4bity ze zadaných hodnot, pod touto
hodnotou se zobrazí binární hodnota vyšších 4bitů a dále se na monitoru zobrazí
nižší hodnota 4bitů ze zadaných hodnot a pod touto hodnotou se zobrazí binární
hodnota nižších 4bitů. Novou hodnotu zadáme po stisku klávesy MEZERNÍKU, program
ukončíme stiskem klávesy ESC. Program simuluje zasílání hodnot na LCD displej
z IO PCF8574 stejně tak jako program LCD.EXE.
PŘÍKLAD: zadáme hodnotu velké „A“ tj. 65 za hodnotu E zadáme „0“, za
hodnotu RS zadáme „0“. V položce binární hodnota se zobrazí 10000001,
v položce vyšší hodnota se zobrazí 4, v položce binární hodnota se
zobrazí 100. V další položce nižší hodnota se zobrazí 1, v položce
binární hodnota se zobrazí 1. Program má stejné omezení spouštění pod různými
OS jako program LCD.EXE.
Obr.č.02 schéma zapojení
přípravku pro ovládání LCD
Bližší informace:
Použité prameny:
Martin Kvoch PROGRAMOVÁNÍ V TP7, RADIO
PLUS KTE 2002/2,
DATASHEET k IO HD44780
Připojení
LCD k počítači s COM portem
Zadání
znaků na monitoru počítače OS WINDOWS XP příkazový řádek
Zobrazení
zadaných znaků na LCD
Zadání
znaků na monitoru počítače OS WINDOWS XP příkazový řádek
Zobrazení
zadaných znaků na LCD displeji OS WINDOWS XP
Spuštěný
program LCD.EXE na počítači s USB/COM redukcí
OS
WINDOWS 7 STARTÉR příkazový řádek
Připojení
převodníku s LCD displejem k redukci USB/COM
Zadané
znaky na monitoru PC OS WINDOWS7 STARTÉR příkazový řádek
Spuštěný
program LCD.EXE volba LCD 2x16 , 2x20 znaků příkazový řádek
Zobrazení
znaků na LCD displeji ovládání POČÍTAČEM OS WINDOWS 7 STARTÉR
REDUKCE
USB/COM